<!DOCTYPE html>
<script src="../../../resources/js-test.js"></script>
<form>
    <input type="radio" name="test1" id="radio1">A
    <input type="radio" name="test1" id="radio2">B
</form>
<script>
    function dispatchEvent(target, eventType, offsetX, offsetY)
    {
        var targetRect = target.getBoundingClientRect();
        var ev = document.createEvent('MouseEvent');
        ev.initMouseEvent(eventType, true, true, window, 1, 1, 1, targetRect.left + offsetX, targetRect.top + offsetY, false, false, false, false, 0, document);
        target.dispatchEvent(ev);
    }
    function defaultPreventingHandler(e) {
        e.preventDefault();
    }

    var radio1 = document.getElementById('radio1');
    var radio2 = document.getElementById('radio2');
    radio1.addEventListener('click', defaultPreventingHandler, false);
    radio2.addEventListener('click', defaultPreventingHandler, false);

    radio1.checked = true;
    // Default-prevented click should not change checked and keep default checked radio
    dispatchEvent(radio1, 'click', 2, 2);
    dispatchEvent(radio2, 'click', 2, 2);
    shouldBeTrue('document.getElementById("radio1").checked');
    shouldBeFalse('document.getElementById("radio2").checked');

    radio1.checked = false;
    // Default-prevented click should not change checked
    dispatchEvent(radio1, 'click', 2, 2);
    dispatchEvent(radio2, 'click', 2, 2);
    shouldBeFalse('document.getElementById("radio1").checked');
    shouldBeFalse('document.getElementById("radio2").checked');
</script>